#ifndef _BSP_CONTROL_H_
#define _BSP_CONTROL_H_
#include "gd32f3x0.h"

#define DESTROY_GPIO_CLK_CMD_FUN    rcu_periph_clock_enable
#define DESTROY_GPIO_CLK_CMD        RCU_GPIOA
#define DESTROY_GPIO_PORT           GPIOA
#define DESTROY_GPIO_PIN            GPIO_PIN_8

#define HEAT_GPIO_CLK_CMD_FUN       rcu_periph_clock_enable
#define HEAT_GPIO_CLK_CMD           RCU_GPIOA
#define HEAT_GPIO_PORT              GPIOA
#define HEAT_GPIO_PIN               GPIO_PIN_7

#define PUMP_GPIO_CLK_CMD_FUN       rcu_periph_clock_enable     //我们把泵里面的计数开关,也当成按键
#define PUMP_GPIO_CLK_CMD           RCU_GPIOB
#define PUMP_GPIO_PORT              GPIOB
#define PUMP_GPIO_PIN               GPIO_PIN_12



typedef enum
{
    STEP1,
    STEP2,
    STEP3,
    STEP4,
    STEP5,
    STEP6,
    STEP7,
    STEP8,
    STEP_ALL,
}WORKING_STEP_Typedef;    //工作步骤结构体

void ControlInit(void);
void PumpControl(ControlStatus En);
void HeatControl(ControlStatus En);
void DestroyControl(ControlStatus En);
void HeatPIDControl(ControlStatus En);
void SetPumpLoop(uint32_t LoopCnt);
void ControlAction(void);

extern uint8_t stop_refresh;
extern uint8_t mark;
extern volatile uint8_t PumpRunFlag;

extern uint16_t second_cnt;  //延时启动没必要那么精确
extern WORKING_STEP_Typedef working_step;   //状态记录用变量(小步)        ConfigParam.WorkingMode.working_mode这个是大步

extern uint8_t notify_flag;   //提示药瓶没有安装好标志
extern uint8_t need_evacuation;  //新瓶子需要排空气标志
#endif